Skip to content

Linux2026 - draft - #8540

Draft
danoli3 wants to merge 57 commits into
openframeworks:masterfrom
danoli3:linux2026
Draft

Linux2026 - draft#8540
danoli3 wants to merge 57 commits into
openframeworks:masterfrom
danoli3:linux2026

Conversation

@danoli3

@danoli3 danoli3 commented Aug 15, 2026

Copy link
Copy Markdown
Member

Linux 2026

Draft for the makefile / download path split that matches current apothecary Linux artifacts.

Companion: openframeworks/apothecary#585 (Raspberry Pi aarch64 / armv7l / armv6l QEMU + GCC 10, all platforms green).

Lib paths (makefile + apothecary)

Target ARCH Path
Desktop x86_64 64 lib/linux/64
Generic aarch64 arm64 lib/linux/arm64
Raspberry Pi 64-bit aarch64 lib/linux/aarch64
Raspberry Pi 32-bit v7 armv7l lib/linux/armv7l
Raspberry Pi 32-bit v6 armv6l lib/linux/armv6l

Legacy flat folders (linux64, linuxarmv6l, …) stay as addon fallbacks.

Official archives (GCC 10 baseline)

openFrameworksLibs_<tag>_linux_<ARCH>_gcc10.tar.bz2

download_libs.sh now:

  • Detects Raspberry Pi so Pi 64-bit stays aarch64 (does not pull generic linux_arm64)
  • Always requests _gcc10 for the five official Linux targets
  • Extracts archives as-is (no --strip-components=1)
  • Promotes leftover pre-0.13 flat folders up to lib/linux/<arch>
  • Only removes the arch being installed

Status

  • Draft, conflicts with master (needs rebase)
  • Apothecary 585 already produces these paths and names

@danoli3
danoli3 marked this pull request as draft August 15, 2026 04:20
@danoli3 danoli3 self-assigned this Aug 15, 2026
@danoli3 danoli3 added this to the 0.12.2 milestone Aug 15, 2026
@danoli3 danoli3 moved this to In Progress in openFrameworks Development Aug 15, 2026
Detect Raspberry Pi so aarch64 stays the Pi 64-bit package, not
generic arm64. Request the GCC 10 baseline for all official Linux
targets, extract archives as-is, and keep lib/linux/<arch> instead
of flattening back to linux64/linuxarmv6l.
Resolve of.yml by keeping linux2026 arch/gcc download flags and
taking master's curl library check. Enable the armv7l RPi CI slice.
OF_DIR was unset so compileOF/PG/examples resolved the repo root
wrong. compileOF now maps 64/arm64/aarch64/armv6l/armv7l/jetson to
lib/linux/<arch>. RPi CI looks at scripts/ci/linux/rpi/raspbian.
scripts/ci/linux/rpi is one directory deeper than the old linuxrpi
path, so OF_ROOT resolved to scripts/ and the armv7l template copy
failed. Walk up four levels. Do not cancel sibling RPi slices on
one failure.
CI is not a Pi, so RPI_DETECTED is no and armv6l/armv7l fell through
to a tab-prefixed $(error) ("recipe commences before first target").
aarch64 was remapped to generic arm64 and looked in lib/linux/arm64.

Treat armv6l/armv7l/aarch64, RPI_DETECTED, and RPI_ROOT as RPi so
libs resolve under lib/linux/<arch>. Keep generic ARM desktop on
linux/arm64. Resolve third-party and addon libs via canonical then
legacy subpaths. Official Linux archives are GCC 10 only.

Skip the RPi example build until latest includes glm/tess2. Drop the
22.04 apt cache that used 24.04 package names.
Run a dedicated workflow on push and pull_request that extracts
find_platform_lib_path and checks each official arch: new nested
folder wins, pre-0.13 flat folder still resolves, missing stays empty.
linux/64/run_tests.sh copied a host Makefile into every tests/* folder
and executed the binary. android / emscripten / ios / tvOS are not
headless Linux unit tests (GLFW needs DISPLAY). Use the linux64
templates to match build.sh.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

Status: In Progress

Development

Successfully merging this pull request may close these issues.

1 participant